package com.techsen.tsweb.sys.dao;

import java.util.List;

import org.springframework.stereotype.Repository;

import com.techsen.tsweb.core.dao.Dao;
import com.techsen.tsweb.sys.domain.Menu;

@Repository
public interface MenuDao extends Dao<Menu> {
    
    /**
     * 根据父菜单ID获取所有子菜单
     */
    List<Menu> getAllChildrenMenu(String id);
    
    /**
     * 根据父菜单ID获取所有子菜单ID
     */
    List<String> getAllChildrenMenuId(String id);
    
    /**
     * 根据用户ID获取菜单ID集合
     */
    List<String> getMenuIdsByUserId(String userId);
    
    /**
     * 根据角色ID获取菜单ID集合
     */
    List<String> getMenuIdsByRoleId(String roleId);
    
    /**
     * 根据用户ID获取授权给这个用户的菜单资源ID集合<br/>
     * 1. 按用户授权<br/>
     * 2. 按角色授权<br/>
     */
    List<String> getAuthorizedMenuIdsByUserId(String userId);
    
    /**
     * 根据用户ID获取授权给这个用户的菜单资源集合<br/>
     * 1. 按用户授权<br/>
     * 2. 按角色授权<br/>
     */
    List<Menu> getAuthorizedMenusByUserId(String userId);

}
